<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!--     由于vue底层原因会 如果存在互斥关系会将虚拟dom加载到内存中进行比较
    求同存异、当我们点击切换时并不会创建新的dom出来而是去检索虚拟dom不同的
    地方进行替换
    解决方案:给该dom加上key标识、key标识不同则不会复用该dom。
    该底层也是为来优化性能。 -->
    <div class="box">
        <span v-if="isUser">
        <label for="username">用户账号:</label>
        <input type="text" id="username" placeholder="用户账号" key="username">
      </span>
        <span v-else>
        <label for="email">用户邮箱:</label>
        <input type="text" id="email" placeholder="用户邮箱" key="email">
      </span>
        <button @click='isUser = !isUser '>切换类型</button>
    </div>

</body>
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.js"></script>
<script>
    const app = new Vue({
        el: '.box',
        data: {
            isUser: true,
        },
    })
</script>

</html>